Skip to main content

Decontamination Request - Synchronous Method

This is an API that requests the transmission of a file to the SHIELDEX server for sanitization (CDR).

info

Important Notes

  • Encoding: All text data must be encoded in UTF-8.
  • Callback: The callback URL isresult.callbackURLYou can set it in the field, and you can receive the results after the neutralization is completed.
  • Job ID Length: Up to 36 characters are allowed, and exceeding this will result in a validation failure.
  • Authentication : Authorization: Bearer <API-KEY>Identifies the integration system with the header. The API Key can be issued from the web console → policies → integration system policies.

1. API Overview

1.1 API List

methodMethodAPIExplanation
motivePOST/v5/cdr-syncReturns the final result after the demilitarization is completed.

Base URL

http://{IP or domain}:{PORT}
itemContent
Default Port8060(It can be configured to port 80 depending on the environment)
encodingUTF-8

1.2 Integration Method (request.type)

Request for File Transfer Methodrequest.typeSelect.

itemuploadshared
File TransferRequest details (JSON) and filemultipart/form-dataSend together withSend only the request body (JSON)
PreparationIntegration is possible as long as HTTP communication is available.Configuration of shared folder (NFS) between both servers is required.
result fileGET /v5/download/{jobID}SD_OUTfolder orGET /v5/download/{jobID}

2. Authentication and Access Control

All requests areAuthorizationInclude the API Key in the header in Bearer token format.

Authorization: Bearer <API-KEY>

2.1 API Key Authentication

itemContent
Delivery LocationHTTP Request Header Authorization
Issuance LocationSHIELDEX Web Console > Policy > Integration System Policy screen allows issuance and inquiry.

2.2 Authentication Failure Response

situationHTTP StatusResponse Message
API Key Invalid401 UnauthorizedThe API Key is invalid. Please verify the API Key.
Non-existence of integration system401 UnauthorizedThe associated system was not found for this API Key.

3. Decontamination Request

3.1 API Information

# Motivation
POST /v5/cdr-sync
POST /v5/cdr-sync/{jobID}

3.2 HTTP Form Submission Method API

Request Path Parameter

Field

Type

Required

Description

jobID

String

N

  • 무해화 작업 1건의 고유 식별자. 결과 조회·파일 다운로드에 동일하게 사용합니다. 미입력 시 서버가 자동 생성하여 응답에 담아 반환합니다.

  • 최대 36자 · 중복 불가 · 예)202308034b5a9049b9a73

Request Parts (multipart/form-data)

Part

Type

Required

Description

data

JSON

Y

  • 무해화 요청 전문 (요청자 정보 · 파일 정보 · 결과 통지 방법)

  • Content-Type application/json

file

File

Y

  • 무해화 대상 파일 본체.

  • 파일명은 fileinfo.filename 과 동일

Request Data JSON Structure

{
"request": {
"type": "upload",
"id": "BATCH-20260818-001"
},
"userinfo": {
"id": "user001",
"name": "홍길동",
"department": "개발팀",
"dutyname": "책임연구원"
},
"fileinfo": {
"filename": "2026_사업계획.hwp"
},
"result": {
"callbackURL": "https://your-callback-url.com/callback"
}
}

Request Data Fields

FieldTypeRequiredDescription
request.typeString==Y==File Transfer Method - ==upload==
request.idStringNWork Group ID. VariousjobIDis a parent identifier that groups into a single task and has a maximum of 36 characters.
userinfo.idString==Y==Unique identifier ID of the requesting user. This is the threshold for log tracking and user-specific policy application.
userinfo.nameStringNusername
userinfo.departmentStringNUser Department Name
userinfo.dutynameStringNUser Position·Title Name
fileinfo.filenameString==Y==Decontamination Target File Name(with extension). multipartfilemust be the same as the file name.
result.callbackURLStringNUse when the decontamination processing result is a callback (send the "decontamination result" message to the corresponding URL)

REQUEST Sample

curl -X POST "http://{IP}:8060/v5/cdr-sync" \
-H "Authorization: Bearer your-api-key-here" \
-H "Content-Type: multipart/form-data" \
-F 'data={
"request": {
"type": "upload",
"id": "BATCH-20260818-001"
},
"userinfo": {
"id": "user001",
"name": "홍길동",
"department": "개발팀",
"dutyname": "책임연구원"
},
"fileinfo": {
"filename": "test.pdf"
},
"result": {
"callbackURL": "https://your-callback-url.com/callback"
}
};type=application/json' \
-F "file=@/path/to/test.pdf"

RESPONSE — Decontamination Result (200 OK)

The synchronous method returns the final result after the dematerialization is complete.

{
"jobID": "test-job-001",
"code": 0,
"detailCode": 0,
"logReason": 200000,
"logReasonMsg": "파일 재구성 완료",
"msg": "success"
}

3.3 Folder Sharing Method API

Request Path Parameter

Field

Type

Required

Description

jobID

String

N

  • 무해화 작업 1건의 고유 식별자. 결과 조회·파일 다운로드에 동일하게 사용합니다. 미입력 시 서버가 자동 생성하여 응답에 담아 반환합니다.

  • 최대 36자 · 중복 불가 · 예)202308034b5a9049b9a73

Request Parts (multipart/form-data)

Part

Type

Required

Description

data

JSON

Y

  • 무해화 요청 전문 (요청자 정보 · 파일 정보 · 결과 통지 방법)

  • Content-Type application/json

file

File

N

  • shared 방식은 전송하지 않습니다.

Request Data JSON Structure

{
"request": {
"type": "shared",
"id": "260622guid12345"
},
"userinfo": {
"id": "user001",
"name": "홍길동",
"department": "개발팀",
"dutyname": "책임연구원"
},
"fileinfo": {
"filename": "57dac8bb-5324-11f1-939c-23ad1125b146.xlsx",
"subDir": "/subPath1/subPath2/subPath3"
},
"result": {
"callbackURL": "https://your-callback-url.com/callback"
}
}

Request Data Fields

FieldTypeRequiredDescription
request.typeString==Y==File Transfer Method - ==shared==
request.idStringNWork Group ID. VariousjobIDis a parent identifier that groups into a single task and has a maximum of 36 characters.
userinfo.idString==Y==Unique identifier ID of the requesting user. This is the threshold for log tracking and user-specific policy application.
userinfo.nameStringNusername
userinfo.departmentStringNUser Department Name
userinfo.dutynameStringNUser Position·Title Name
fileinfo.filenameString==Y==Decontamination Target File Name(including extension).==Unique file names are required==
fileinfo.subDirStringNWhen using the "folder sharing method," it can be used as an option value. If using the subDir value, the jobID value must be provided when making a decontamination request. - POST /v5/cdr/=={jobID}==
result.callbackURLStringNUse when the decontamination processing result is a callback (send the "decontamination result" message to the corresponding URL)

REQUEST Sample

fileSD_INafter copying tofileI will send only the expertise without any part.

curl -X POST "http://{IP}:8060/v5/cdr-sync" \
-H "Authorization: Bearer your-api-key-here" \
-H "Content-Type: multipart/form-data" \
-F 'data={
"request": { "type": "shared" },
"userinfo": { "id": "user001" },
"fileinfo": { "filename": "57dac8bb-5324-11f1-939c-23ad1125b146.xlsx", "subDir": "/subPath1/subPath2/subPath3" }
};type=application/json'

RESPONSE — Decontamination Result (200 OK)

The synchronous method returns the final result after the dematerialization is complete.

{
"jobID": "test-job-001",
"code": 0,
"detailCode": 0,
"logReason": 200000,
"logReasonMsg": "파일 재구성 완료",
"msg": "success"
}